home *** CD-ROM | disk | FTP | other *** search
/ Freelog 117 / FreelogNo117-OctobreNovembre2013.iso / Programmation / jedit / jedit5.1.0install.exe / {app} / modes / hlsl.xml < prev    next >
Extensible Markup Language  |  2013-07-28  |  20KB  |  479 lines

  1. <?xml version="1.0"?>
  2.  
  3. <!DOCTYPE MODE SYSTEM "xmode.dtd">
  4.  
  5. <MODE>
  6. <!--
  7. DirectX FX Files Syntax Highlighting (Edit Mode) for jEdit
  8. Including: Preprocessor, HLSL and Shader Assembler up to shader version 3.0
  9.  
  10. Author: Adam Sawicki
  11. - Homepage: http://regedit.gamedev.pl/
  12. - E-mail: sawickiap@poczta.onet.pl
  13. - IRC: #warsztat @ PolNet
  14. - Gadu-Gadu: 2272474
  15.  
  16. -->
  17.  
  18.     <PROPS>
  19.         <PROPERTY NAME="commentStart" VALUE="/*" />
  20.         <PROPERTY NAME="commentEnd" VALUE="*/" />
  21.         <PROPERTY NAME="lineComment" VALUE="//" />
  22.         <PROPERTY NAME="wordBreakChars" VALUE=".,+-*/=<>?^&[]{}" />
  23.  
  24.         <!-- Auto indent -->
  25.         <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
  26.         <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
  27.         <PROPERTY NAME="indentNextLine" VALUE="\s*(((if|while)\s*\(|else\s*|else\s+if\s*\(|for\s*\(.*\))[^{;]*)" />
  28.         <PROPERTY NAME="doubleBracketIndent" VALUE="false" />
  29.         <PROPERTY NAME="lineUpClosingBracket" VALUE="true" />
  30.     </PROPS>
  31.  
  32.     <RULES
  33.         IGNORE_CASE="FALSE"
  34.         HIGHLIGHT_DIGITS="TRUE"
  35.         DIGIT_RE="((0[xX][0-9a-fA-F]+|\d+)[uUIL]?|\d+([eE]\d*)?[hHfF]?)">
  36.  
  37.         <!-- C style comment -->
  38.         <SPAN TYPE="COMMENT1">
  39.             <BEGIN>/*</BEGIN>
  40.             <END>*/</END>
  41.         </SPAN>
  42.  
  43.         <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
  44.             <BEGIN>"</BEGIN>
  45.             <END>"</END>
  46.         </SPAN>
  47.         <SPAN TYPE="LITERAL1" ESCAPE="\" NO_LINE_BREAK="TRUE">
  48.             <BEGIN>'</BEGIN>
  49.             <END>'</END>
  50.         </SPAN>
  51.  
  52.         <!-- preprocessor statements -->
  53.         <SEQ TYPE="KEYWORD2">##</SEQ>
  54.         <SEQ TYPE="KEYWORD2">#@</SEQ>
  55.         <EOL_SPAN TYPE="KEYWORD2" DELEGATE="Preprocessor">#</EOL_SPAN>
  56.  
  57.         <!-- asm -->
  58.         <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
  59.             <BEGIN>asm</BEGIN>
  60.             <END>}</END>
  61.         </SPAN>
  62.         <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
  63.             <BEGIN>ASM</BEGIN>
  64.             <END>}</END>
  65.         </SPAN>
  66.         <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
  67.             <BEGIN>Asm</BEGIN>
  68.             <END>}</END>
  69.         </SPAN>
  70.         <SPAN AT_WORD_START="TRUE" EXCLUDE_MATCH="FALSE" TYPE="KEYWORD1" DELEGATE="Asm">
  71.             <BEGIN>asm_fragment</BEGIN>
  72.             <END>}</END>
  73.         </SPAN>
  74.  
  75.         <!-- C style comment -->
  76.         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
  77.  
  78.         <!-- Operators - multi character -->
  79.         <SEQ TYPE="OPERATOR">++</SEQ>
  80.         <SEQ TYPE="OPERATOR">--</SEQ>
  81.         <SEQ TYPE="OPERATOR">&&</SEQ>
  82.         <SEQ TYPE="OPERATOR">||</SEQ>
  83.         <SEQ TYPE="OPERATOR">==</SEQ>
  84.         <SEQ TYPE="OPERATOR">::</SEQ>
  85.         <SEQ TYPE="OPERATOR"><<</SEQ>
  86.         <SEQ TYPE="OPERATOR"><<=</SEQ>
  87.         <SEQ TYPE="OPERATOR">>></SEQ>
  88.         <SEQ TYPE="OPERATOR">>>=</SEQ>
  89.         <SEQ TYPE="OPERATOR">...</SEQ>
  90.         <SEQ TYPE="OPERATOR"><=</SEQ>
  91.         <SEQ TYPE="OPERATOR">>=</SEQ>
  92.         <SEQ TYPE="OPERATOR">!=</SEQ>
  93.         <SEQ TYPE="OPERATOR">*=</SEQ>
  94.         <SEQ TYPE="OPERATOR">/=</SEQ>
  95.         <SEQ TYPE="OPERATOR">+=</SEQ>
  96.         <SEQ TYPE="OPERATOR">-=</SEQ>
  97.         <SEQ TYPE="OPERATOR">%=</SEQ>
  98.         <SEQ TYPE="OPERATOR">&=</SEQ>
  99.         <SEQ TYPE="OPERATOR">|=</SEQ>
  100.         <SEQ TYPE="OPERATOR">^=</SEQ>
  101.         <SEQ TYPE="OPERATOR">-></SEQ>
  102.  
  103.         <!-- Operators - single characters -->
  104.         <SEQ TYPE="OPERATOR">}</SEQ>
  105.         <SEQ TYPE="OPERATOR">{</SEQ>
  106.         <SEQ TYPE="OPERATOR">+</SEQ>
  107.         <SEQ TYPE="OPERATOR">-</SEQ>
  108.         <SEQ TYPE="OPERATOR">*</SEQ>
  109.         <SEQ TYPE="OPERATOR">/</SEQ>
  110.         <SEQ TYPE="OPERATOR">%</SEQ>
  111.         <SEQ TYPE="OPERATOR">=</SEQ>
  112.         <SEQ TYPE="OPERATOR"><</SEQ>
  113.         <SEQ TYPE="OPERATOR">></SEQ>
  114.         <SEQ TYPE="OPERATOR">!</SEQ>
  115.  
  116.         <!-- Function calls -->
  117.         <MARK_PREVIOUS TYPE="FUNCTION" EXCLUDE_MATCH="TRUE">(</MARK_PREVIOUS>
  118.  
  119.         <!-- Swizzle operator for vectors/scalars (a.xyzw OR b.rgba), matrices (c._m00_m01 OR d._11_12) indexing -->
  120.         <SEQ_REGEXP TYPE="OPERATOR" HASH_CHAR=".">.(([xyzw]{1,4})|([rgba]{1,4})|((_m[0123][0123])+)|((_[1234][1234])+))(?!\p{Alnum})</SEQ_REGEXP>
  121.  
  122.         <!-- Atomic, but complex types -->
  123.         <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="bool">bool[1234](x[1234])?\b</SEQ_REGEXP>
  124.         <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="int">int[1234](x[1234])?\b</SEQ_REGEXP>
  125.         <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="half">half[1234](x[1234])?\b</SEQ_REGEXP>
  126.         <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="float">float[1234](x[1234])?\b</SEQ_REGEXP>
  127.         <SEQ_REGEXP TYPE="KEYWORD2" AT_WORD_START="TRUE" HASH_CHAR="double">double[1234](x[1234])?\b</SEQ_REGEXP>
  128.  
  129.         <!-- Semantics -->
  130.         <SEQ_REGEXP TYPE="KEYWORD1" HASH_CHAR=":">:\s*(register\s*\(\w+(\s*\,\s*\w+\s*)?\)|\w+)</SEQ_REGEXP>
  131.  
  132.         <KEYWORDS>
  133.             <!-- Control flow keywords -->
  134.             <KEYWORD1>discard</KEYWORD1>
  135.             <KEYWORD1>do</KEYWORD1>
  136.             <KEYWORD1>else</KEYWORD1>
  137.             <KEYWORD1>for</KEYWORD1>
  138.             <KEYWORD1>if</KEYWORD1>
  139.             <KEYWORD1>return</KEYWORD1>
  140.             <KEYWORD1>typedef</KEYWORD1>
  141.             <KEYWORD1>while</KEYWORD1>
  142.  
  143.             <!-- Other keywords -->
  144.             <KEYWORD1>compile</KEYWORD1>
  145.             <KEYWORD1>compile_fragment</KEYWORD1>
  146.             <KEYWORD1>register</KEYWORD1>
  147.             <KEYWORD1>sampler_state</KEYWORD1>
  148.             <KEYWORD1>stateblock_state</KEYWORD1>
  149.             <KEYWORD1>technique</KEYWORD1>
  150.             <KEYWORD1>Technique</KEYWORD1>
  151.             <KEYWORD1>TECHNIQUE</KEYWORD1>
  152.             <KEYWORD1>pass</KEYWORD1>
  153.             <KEYWORD1>Pass</KEYWORD1>
  154.             <KEYWORD1>PASS</KEYWORD1>
  155.             <KEYWORD1>decl</KEYWORD1>
  156.             <KEYWORD1>Decl</KEYWORD1>
  157.             <KEYWORD1>DECL</KEYWORD1>
  158.  
  159.             <!-- Atomic type keywords -->
  160.             <KEYWORD2>void</KEYWORD2>
  161.             <KEYWORD2>bool</KEYWORD2>
  162.             <KEYWORD2>int</KEYWORD2>
  163.             <KEYWORD2>half</KEYWORD2>
  164.             <KEYWORD2>float</KEYWORD2>
  165.             <KEYWORD2>double</KEYWORD2>
  166.             <KEYWORD2>vector</KEYWORD2>
  167.             <KEYWORD2>matrix</KEYWORD2>
  168.  
  169.             <!-- Object type keywords -->
  170.             <KEYWORD3>string</KEYWORD3>
  171.             <KEYWORD3>texture</KEYWORD3>
  172.             <KEYWORD3>texture1D</KEYWORD3>
  173.             <KEYWORD3>texture2D</KEYWORD3>
  174.             <KEYWORD3>texture3D</KEYWORD3>
  175.             <KEYWORD3>textureCUBE</KEYWORD3>
  176.             <KEYWORD3>sampler</KEYWORD3>
  177.             <KEYWORD3>sampler1D</KEYWORD3>
  178.             <KEYWORD3>sampler2D</KEYWORD3>
  179.             <KEYWORD3>sampler3D</KEYWORD3>
  180.             <KEYWORD3>samplerCUBE</KEYWORD3>
  181.             <KEYWORD3>pixelfragment</KEYWORD3>
  182.             <KEYWORD3>vertexfragment</KEYWORD3>
  183.             <KEYWORD3>pixelshader</KEYWORD3>
  184.             <KEYWORD3>vertexshader</KEYWORD3>
  185.             <KEYWORD3>stateblock</KEYWORD3>
  186.             <KEYWORD3>struct</KEYWORD3>
  187.  
  188.             <!-- Usage keywords -->
  189.             <KEYWORD4>static</KEYWORD4>
  190.             <KEYWORD4>uniform</KEYWORD4>
  191.             <KEYWORD4>extern</KEYWORD4>
  192.             <KEYWORD4>volatile</KEYWORD4>
  193.             <KEYWORD4>inline</KEYWORD4>
  194.             <KEYWORD4>shared</KEYWORD4>
  195.             <KEYWORD4>const</KEYWORD4>
  196.             <KEYWORD4>row_major</KEYWORD4>
  197.             <KEYWORD4>column_major</KEYWORD4>
  198.             <KEYWORD4>in</KEYWORD4>
  199.             <KEYWORD4>inout</KEYWORD4>
  200.             <KEYWORD4>out</KEYWORD4>
  201.  
  202.             <!-- Literals -->
  203.             <LITERAL1>false</LITERAL1>
  204.             <LITERAL1>true</LITERAL1>
  205.             <LITERAL1>NULL</LITERAL1>
  206.  
  207.             <!-- Intrinsic functions -->
  208.             <LITERAL2>abs</LITERAL2>
  209.             <LITERAL2>acos</LITERAL2>
  210.             <LITERAL2>all</LITERAL2>
  211.             <LITERAL2>any</LITERAL2>
  212.             <LITERAL2>asin</LITERAL2>
  213.             <LITERAL2>atan</LITERAL2>
  214.             <LITERAL2>atan2</LITERAL2>
  215.             <LITERAL2>ceil</LITERAL2>
  216.             <LITERAL2>clamp</LITERAL2>
  217.             <LITERAL2>clip</LITERAL2>
  218.             <LITERAL2>cos</LITERAL2>
  219.             <LITERAL2>cosh</LITERAL2>
  220.             <LITERAL2>cross</LITERAL2>
  221.             <LITERAL2>D3DCOLORtoUBYTE4</LITERAL2>
  222.             <LITERAL2>ddx</LITERAL2>
  223.             <LITERAL2>ddy</LITERAL2>
  224.             <LITERAL2>degrees</LITERAL2>
  225.             <LITERAL2>determinant</LITERAL2>
  226.             <LITERAL2>distance</LITERAL2>
  227.             <LITERAL2>dot</LITERAL2>
  228.             <LITERAL2>exp</LITERAL2>
  229.             <LITERAL2>exp2</LITERAL2>
  230.             <LITERAL2>faceforward</LITERAL2>
  231.             <LITERAL2>floor</LITERAL2>
  232.             <LITERAL2>fmod</LITERAL2>
  233.             <LITERAL2>frac</LITERAL2>
  234.             <LITERAL2>frexp</LITERAL2>
  235.             <LITERAL2>fwidth</LITERAL2>
  236.             <LITERAL2>isfinite</LITERAL2>
  237.             <LITERAL2>isinf</LITERAL2>
  238.             <LITERAL2>isnan</LITERAL2>
  239.             <LITERAL2>ldexp</LITERAL2>
  240.             <LITERAL2>length</LITERAL2>
  241.             <LITERAL2>lerp</LITERAL2>
  242.             <LITERAL2>lit</LITERAL2>
  243.             <LITERAL2>log</LITERAL2>
  244.             <LITERAL2>log10</LITERAL2>
  245.             <LITERAL2>log2</LITERAL2>
  246.             <LITERAL2>max</LITERAL2>
  247.             <LITERAL2>min</LITERAL2>
  248.             <LITERAL2>modf</LITERAL2>
  249.             <LITERAL2>mul</LITERAL2>
  250.             <LITERAL2>noise</LITERAL2>
  251.             <LITERAL2>normalize</LITERAL2>
  252.             <LITERAL2>pow</LITERAL2>
  253.             <LITERAL2>radians</LITERAL2>
  254.             <LITERAL2>reflect</LITERAL2>
  255.             <LITERAL2>refract</LITERAL2>
  256.             <LITERAL2>round</LITERAL2>
  257.             <LITERAL2>rsqrt</LITERAL2>
  258.             <LITERAL2>saturate</LITERAL2>
  259.             <LITERAL2>sign</LITERAL2>
  260.             <LITERAL2>sin</LITERAL2>
  261.             <LITERAL2>sincos</LITERAL2>
  262.             <LITERAL2>sinh</LITERAL2>
  263.             <LITERAL2>smoothstep</LITERAL2>
  264.             <LITERAL2>sqrt</LITERAL2>
  265.             <LITERAL2>step</LITERAL2>
  266.             <LITERAL2>tan</LITERAL2>
  267.             <LITERAL2>tanh</LITERAL2>
  268.             <LITERAL2>transpose</LITERAL2>
  269.  
  270.             <!-- Intrinsic functions - sampling -->
  271.             <LITERAL3>tex1D</LITERAL3>
  272.             <LITERAL3>tex1Dgrad</LITERAL3>
  273.             <LITERAL3>tex1Dbias</LITERAL3>
  274.             <LITERAL3>tex1Dgrad</LITERAL3>
  275.             <LITERAL3>tex1Dlod</LITERAL3>
  276.             <LITERAL3>tex1Dproj</LITERAL3>
  277.             <LITERAL3>tex2D</LITERAL3>
  278.             <LITERAL3>tex2D</LITERAL3>
  279.             <LITERAL3>tex2Dbias</LITERAL3>
  280.             <LITERAL3>tex2Dgrad</LITERAL3>
  281.             <LITERAL3>tex2Dlod</LITERAL3>
  282.             <LITERAL3>tex2Dproj</LITERAL3>
  283.             <LITERAL3>tex3D</LITERAL3>
  284.             <LITERAL3>tex3D</LITERAL3>
  285.             <LITERAL3>tex3Dbias</LITERAL3>
  286.             <LITERAL3>tex3Dgrad</LITERAL3>
  287.             <LITERAL3>tex3Dlod</LITERAL3>
  288.             <LITERAL3>tex3Dproj</LITERAL3>
  289.             <LITERAL3>texCUBE</LITERAL3>
  290.             <LITERAL3>texCUBE</LITERAL3>
  291.             <LITERAL3>texCUBEbias</LITERAL3>
  292.             <LITERAL3>texCUBEgrad</LITERAL3>
  293.             <LITERAL3>texCUBElod</LITERAL3>
  294.             <LITERAL3>texCUBEproj</LITERAL3>
  295.  
  296.             <!-- Reserved but unused words -->
  297.             <INVALID>auto</INVALID>
  298.             <INVALID>break</INVALID>
  299.             <INVALID>case</INVALID>
  300.             <INVALID>catch</INVALID>
  301.             <INVALID>char</INVALID>
  302.             <INVALID>class</INVALID>
  303.             <INVALID>const_cast</INVALID>
  304.             <INVALID>continue</INVALID>
  305.             <INVALID>default</INVALID>
  306.             <INVALID>delete</INVALID>
  307.             <INVALID>dynamic_cast</INVALID>
  308.             <INVALID>enum</INVALID>
  309.             <INVALID>explicit</INVALID>
  310.             <INVALID>friend</INVALID>
  311.             <INVALID>goto</INVALID>
  312.             <INVALID>long</INVALID>
  313.             <INVALID>mutable</INVALID>
  314.             <INVALID>namespace</INVALID>
  315.             <INVALID>new</INVALID>
  316.             <INVALID>operator</INVALID>
  317.             <INVALID>private</INVALID>
  318.             <INVALID>protected</INVALID>
  319.             <INVALID>public</INVALID>
  320.             <INVALID>reinterpret_cast</INVALID>
  321.             <INVALID>short</INVALID>
  322.             <INVALID>signed</INVALID>
  323.             <INVALID>sizeof</INVALID>
  324.             <INVALID>static_cast</INVALID>
  325.             <INVALID>switch</INVALID>
  326.             <INVALID>template</INVALID>
  327.             <INVALID>this</INVALID>
  328.             <INVALID>throw</INVALID>
  329.             <INVALID>try</INVALID>
  330.             <INVALID>typename</INVALID>
  331.             <INVALID>union</INVALID>
  332.             <INVALID>unsigned</INVALID>
  333.             <INVALID>using</INVALID>
  334.             <INVALID>virtual</INVALID>
  335.         </KEYWORDS>
  336.     </RULES>
  337.  
  338.     <RULES SET="Include" DEFAULT="KEYWORD2" />
  339.  
  340.     <RULES
  341.         SET="Preprocessor"
  342.         DEFAULT="KEYWORD2"
  343.         IGNORE_CASE="FALSE"
  344.         HIGHLIGHT_DIGITS="TRUE"
  345.         DIGIT_RE="((0x[[:xdigit:]]+|[[:digit:]]+)[uUIL]?|[[:digit:]]+([eE][[:digit:]]*)?[hHfF]?)">
  346.  
  347.         <!-- C style comment -->
  348.         <SPAN TYPE="COMMENT1">
  349.             <BEGIN>/*</BEGIN>
  350.             <END>*/</END>
  351.         </SPAN>
  352.  
  353.         <!-- this is a hack so that #include <net/if.h> does not get the if highlighted -->
  354.         <EOL_SPAN TYPE="MARKUP" DELEGATE="Include">include</EOL_SPAN>
  355.  
  356.         <KEYWORDS>
  357.             <!-- Directives -->
  358.             <MARKUP>define</MARKUP>
  359.             <MARKUP>elif</MARKUP>
  360.             <MARKUP>else</MARKUP>
  361.             <MARKUP>endif</MARKUP>
  362.             <MARKUP>error</MARKUP>
  363.             <MARKUP>if</MARKUP>
  364.             <MARKUP>ifdef</MARKUP>
  365.             <MARKUP>ifndef</MARKUP>
  366.             <MARKUP>line</MARKUP>
  367.             <MARKUP>pragma</MARKUP>
  368.             <MARKUP>undef</MARKUP>
  369.  
  370.             <!-- Other -->
  371.             <LITERAL1>pack_matrix</LITERAL1>
  372.             <LITERAL1>warning</LITERAL1>
  373.             <LITERAL1>def</LITERAL1>
  374.             <LITERAL1>defined</LITERAL1>
  375.             <LITERAL1>D3DX</LITERAL1>
  376.             <LITERAL1>D3DX_VERSION</LITERAL1>
  377.             <LITERAL1>DIRECT3D</LITERAL1>
  378.             <LITERAL1>DIRECT3D_VERSION</LITERAL1>
  379.             <LITERAL1>__FILE__</LITERAL1>
  380.             <LITERAL1>__LINE__</LITERAL1>
  381.         </KEYWORDS>
  382.     </RULES>
  383.  
  384.     <RULES SET="Asm"
  385.         DEFAULT="NULL"
  386.         IGNORE_CASE="FALSE"
  387.         HIGHLIGHT_DIGITS="TRUE"
  388.         DIGIT_RE="((0x[[:xdigit:]]+|[[:digit:]]+)[uUIL]?|[[:digit:]]+([eE][[:digit:]]*)?[hHfF]?)">
  389.  
  390.         <!-- Starting... -->
  391.         <SEQ TYPE="OPERATOR">{</SEQ>
  392.  
  393.         <!-- Comments -->
  394.         <SPAN TYPE="COMMENT1">
  395.             <BEGIN>/*</BEGIN>
  396.             <END>*/</END>
  397.         </SPAN>
  398.         <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
  399.         <EOL_SPAN TYPE="COMMENT2">;</EOL_SPAN>
  400.  
  401.         <!-- Operators -->
  402.         <SEQ TYPE="OPERATOR">+</SEQ>
  403.         <SEQ TYPE="OPERATOR">-</SEQ>
  404.         <SEQ TYPE="OPERATOR">,</SEQ>
  405.  
  406.         <!-- Swizzle operator -->
  407.         <SEQ_REGEXP TYPE="OPERATOR" HASH_CHAR=".">.(([xyzw]{1,4}))</SEQ_REGEXP>
  408.  
  409.         <!-- Instruction -->
  410.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="abs">abs(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  411.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="add">add(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  412.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="bem">bem(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  413.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="break_comp">break_comp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  414.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="breakp">breakp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  415.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="callnz">callnz(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  416.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="cmp">cmp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  417.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="cnd">cnd(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  418.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="crs">crs(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  419.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dp2add">dp2add(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  420.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dp3">dp3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  421.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dp4">dp4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  422.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dst">dst(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  423.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dsx">dsx(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  424.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="dsy">dsy(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  425.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="else">else(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  426.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="endif">endif(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  427.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="endloop">endloop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  428.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="endrep">endrep(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  429.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="exp">exp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  430.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="frc">frc(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  431.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="if">if(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  432.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="label">label(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  433.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="lit">lit(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  434.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="logp">logp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  435.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="loop">loop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  436.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="lrp">lrp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  437.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m3x2">m3x2(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  438.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m3x3">m3x3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  439.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m3x4">m3x4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  440.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m4x3">m4x3(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  441.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="m4x4">m4x4(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  442.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mad">mad(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  443.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mov">mov(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  444.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="max">max(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  445.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="min">min(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  446.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mova">mova(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  447.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="mul">mul(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  448.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="nop">nop(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  449.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="nrm">nrm(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  450.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="phase">phase(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  451.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="pow">pow(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  452.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="rcp">rcp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  453.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="rep">rep(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  454.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="ret">ret(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  455.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="rsq">rsq(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  456.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="setp_comp">setp_comp(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  457.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sge">sge(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  458.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sgn">sgn(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  459.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sincos">sincos(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  460.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="slt">slt(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  461.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="sub">sub(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  462.         <!-- (seen in preshader -->
  463.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="FUNCTION" HASH_CHAR="neg">neg(_pp|_sat|_x2|_x4|_x8|_bx2|_d2|_d4|_d8)*\b</SEQ_REGEXP>
  464.  
  465.         <!-- Texturing instruction -->
  466.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD2" HASH_CHAR="tex">tex\w*</SEQ_REGEXP>
  467.  
  468.         <!-- Main instruction -->
  469.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="ps">ps\w*</SEQ_REGEXP>
  470.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="vs">vs\w*</SEQ_REGEXP>
  471.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="def">def\w*</SEQ_REGEXP>
  472.         <SEQ_REGEXP AT_WORD_START="TRUE" TYPE="KEYWORD1" HASH_CHAR="dcl">dcl\w*</SEQ_REGEXP>
  473.  
  474.         <KEYWORDS>
  475.         </KEYWORDS>
  476.     </RULES>
  477. </MODE>
  478.  
  479.